Package kr.inamatrix.danguscore.shared.models

Source Code of kr.inamatrix.danguscore.shared.models.GamerInfoModel$Builder

/**
*
*/
package kr.inamatrix.danguscore.shared.models;

import java.io.Serializable;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import kr.inamatrix.danguscore.shared.common.StringUtil;
import kr.inamatrix.danguscore.shared.exceptions.IdIsNotAvailableException;
import kr.inamatrix.danguscore.shared.exceptions.PasswordDoesNotConfirmException;
import kr.inamatrix.danguscore.shared.exceptions.ScoreIsNotAvailableException;

/**
* Title: GamerInfoModel.java<br>
* Description: 선수 정보를 저장하는 모델 class<br>
* Copyright: Copyright(c) 2012 Inamatrix ALL Rights Reserved<br>
*
* @author Jonghwa, Lee
* @version 1.0
* @created 2012. 2. 3.
* @modified 2012. 2. 3.
*/
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class GamerInfoModel implements Serializable{
    /**
     *
     */
    private static final long serialVersionUID = 5098585061350512614L;
   
    @PrimaryKey
    @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
    private Long _id;
   
    @Persistent
    private String _name;
   
    @Persistent
    private String _password;
   
    @Persistent
    private String passwordConfirm;

    @Persistent
    private int _score;
   
    @Persistent
    private String _email;

    @Persistent
    private boolean _admin;
   
    @Persistent
    private long _registDate;
   
    @Persistent
    private VsPlayerModel _vsPlayerTableModel;
   
    public GamerInfoModel() {
       
    }
   
    /**
     * @param builder
     */
    private GamerInfoModel(Builder builder) {
        _name = builder._name;
        _password = builder._password;
        _score = builder._score;
        _email = builder._email;
        _admin = builder._admin;
        _registDate = builder._registDate;
        _vsPlayerTableModel = builder._vsPlayerTableModel;
    }

    /**
     * @return the id
     */
    public Long getId() {
        return _id;
    }

    /**
     * @return the name
     */
    public String getName() {
        return _name;
    }

    /**
     * @return the password
     */
    public String getPassword() {
        return _password;
    }

    /**
     * @return the passwordConfirm
     */
    public String getPasswordConfirm() {
        return passwordConfirm;
    }
   
    /**
     * @return the score
     */
    public int getScore() {
        return _score;
    }

    /**
     * @return the email
     */
    public String getEmail() {
        return _email;
    }

    /**
     * @return the admin
     */
    public boolean isAdmin() {
        return _admin;
    }
   
    /**
     * @return the registDate
     */
    public long getRegistDate() {
        return _registDate;
    }

    /**
     * @return the vsPlayerTableModel
     */
    public VsPlayerModel getVsPlayerTableModel() {
        return _vsPlayerTableModel;
    }
   
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("=============").append(" GamerInfoModel ").append("=============\n");
        builder.append("_id").append("=").append(_id).append("\n");
        builder.append("_name").append("=").append(_name).append("\n");
        builder.append("_password").append("=").append(_password).append("\n");
        builder.append("_score").append("=").append(_score).append("\n");
        builder.append("_email").append("=").append(_email).append("\n");
        builder.append("_admin").append("=").append(_admin).append("\n");
        builder.append("_registDate").append("=").append(_registDate).append("\n");
        return builder.toString();
    }

    public static final class Builder {
        private String _name;
        private String _password;
        private String _passwordConfirm;
        private int _score;
        private String _email;
        private boolean _admin;
        private long _registDate;
        private VsPlayerModel _vsPlayerTableModel;
        public Builder() {
           
        }
       
        public Builder(String name, String password) {
            _name = name;
            _password = password;
        }
       
        public Builder setPasswordConfirm(String passwordConfirm) {
            _passwordConfirm = passwordConfirm;
            return this;
        }
       
        public Builder setScore(int score) {
            _score = score;
            return this;
        }
       
        public Builder setEmail(String email) {
            _email = email;
            return this;
        }
       
        public Builder setRegistDate(long registDate) {
            _registDate = registDate;
            return this;
        }
       
        public Builder setAdmin(boolean isAdmin) {
            _admin = isAdmin;
            return this;
        }
       
        public Builder setVsPlayerTableModel(VsPlayerModel vsPlayerTableModel) {
            _vsPlayerTableModel = vsPlayerTableModel;
            return this;
        }
       
        public GamerInfoModel build() throws PasswordDoesNotConfirmException, ScoreIsNotAvailableException, IdIsNotAvailableException {
            if (StringUtil.isEmptyString(_name)) {
                throw new IdIsNotAvailableException();
            } else if (_password == null || _passwordConfirm == null || !StringUtil.isEquals(_password, _passwordConfirm)) {
                throw new PasswordDoesNotConfirmException();
            } else if (_score < 0 || _score > 5000) {
                throw new ScoreIsNotAvailableException();
            }
            return new GamerInfoModel(this);
        }
    }
}
TOP

Related Classes of kr.inamatrix.danguscore.shared.models.GamerInfoModel$Builder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.